classDiagram
direction BT
class Animal {
   int age
  + breathe() void
  + eat() void
}
class Bat {
  + eat() void
  + fly() void
  + breathe() void
}
class Bird {
  + eat() void
  + breathe() void
}
class Cat {
  + breathe() void
  + walk() void
  + eat() void
}
class Dolphin {
  + echolocation() void
  + breathe() void
  + eat() void
  + breach() void
  + swim() void
}
class Fish {
  + eat() void
  + breathe() void
}
class Flyable {
<<Interface>>
  + fly() void
}
class Gender {
<<enumeration>>
  + values() Gender[]
  + toString() String
  + valueOf(String) Gender
}
class Mammal {
   boolean isViviparous
  + nurseYoung() void
  + breathe() void
  + eat() void
}
class Monkey {
  + eat() void
  + walk() void
  + breathe() void
  + climb() void
}
class Penguin {
  + walk() void
  + swim() void
  + reproduce() void
  + careForYoung() void
  + breathe() void
  + eat() void
}
class Platypus {
  + careForYoung() void
  + swim() void
  + breathe() void
  + eat() void
  + venomousSpurAttack() void
  + reproduce() void
  + walk() void
}
class Reproduction {
<<Interface>>
  + reproduce() void
  + careForYoung() void
}
class Seahorse {
  + eat() void
  + swim() void
  + reproduce() void
  + curlTail() void
  + breathe() void
  + careForYoung() void
}
class Shark {
  + careForYoung() void
  + breathe() void
  + reproduce() void
  + eat() void
}
class Swan {
  + eat() void
  + reproduce() void
  + careForYoung() void
  + swim() void
  + breathe() void
  + fly() void
  + walk() void
}
class Swimmable {
<<Interface>>
  + swim() void
}
class TemperatureRegulation {
<<enumeration>>
  + toString() String
  + values() TemperatureRegulation[]
  + valueOf(String) TemperatureRegulation
}
class Walkable {
<<Interface>>
  + walk() void
}
class Whale {
  + breathe() void
  + eat() void
  + swim() void
}

Bat  ..>  Flyable 
Bat  -->  Mammal 
Bird  -->  Animal 
Cat  -->  Mammal 
Cat  ..>  Walkable 
Dolphin  -->  Mammal 
Dolphin  ..>  Swimmable 
Fish  -->  Animal 
Mammal  -->  Animal 
Monkey  -->  Mammal 
Monkey  ..>  Walkable 
Penguin  -->  Bird 
Penguin  ..>  Reproduction 
Penguin  ..>  Swimmable 
Penguin  ..>  Walkable 
Platypus  -->  Mammal 
Platypus  ..>  Reproduction 
Platypus  ..>  Swimmable 
Platypus  ..>  Walkable 
Seahorse  -->  Fish 
Seahorse  ..>  Reproduction 
Seahorse  ..>  Swimmable 
Shark  -->  Fish 
Shark  ..>  Reproduction 
Swan  -->  Bird 
Swan  ..>  Flyable 
Swan  ..>  Reproduction 
Swan  ..>  Swimmable 
Swan  ..>  Walkable 
Whale  -->  Mammal 
Whale  ..>  Swimmable 
